#ifndef Application_h
#define Application_h

#include "Engine.h" 

class GameInput;
class GameState;

class Application
{
public:  

	static Application *application; 
	
    Application();    
  
    virtual ~Application();  
	
    virtual void Init();
  
    virtual void Render();    
  
    virtual void Update();

    virtual void Destroy();
	void PauseGame();
	void ResumeGame();
    
    // Pointer Event.
    virtual void PointerEvent(int type, int x, int y);
    
    // Keyboard Event.
    virtual void KeyEvent(int type, int keyCode);    
    
    // Set the current state for the game.
    virtual void SetState(short iCurrentState);
    
    // Get the Global Application
    static Application	*GetApplication();	
	
protected:
	GameState*	currentState;	  

};

#endif
